This application claims priority under 35 U.S.C. xc2xa7xc2xa7119 and/or 365 to 197 47 583.3 filed in Federal Republic of Germany on Oct. 28, 1997; the entire content of which is hereby incorporated by reference.
The present invention relates to a system and method of communicating information in a network, and in particular, the present invention relates to a system for communicating information, related to a plurality of tagged objects, in a network.
In recent years, data communication techniques have evolved tremendously. Electromechanical equipment for communicating information over larger distances is now widely replaced by digital systems using semiconductor switches. With the availability of cheap data processing capacity in today""s world, it is now possible for virtually everyone to not only communicate voice and audio signals but also data stored on computers, data bases, etc. Especially with the advent of computer networks, such as the Internet, connecting computers virtually all over the world, easy and inexpensive access to digital information becomes possible worldwide.
The Internet and similarly other networks can be used for a variety of different applications. It is, for example, possible to retrieve information about a specific topic by accessing files which may be physically located at arbitrary places, essentially worldwide. The files may contain text, audio signal, images, video or data related to applications.
In order to be able to access the files it is required to know the name of the documents and further, it is required to know the addresses of network computers storing the documents. However, in many cases, information about the name and location of documents related to a desired topic or physical object is not available and, means for retrieving information about possible locations of documents or applications related to the topic are required. Therefore, on most common networks various applications are available, to assist an user in identifying names of documents as well as addresses of servers storing the documents related to the object.
Generally, the assisting applications perform a more or less detailed network search based on a keyword or sets of keywords provided by the user. A search result typically is a list of addresses and links to servers storing information related to the desired topic. The user can select each record of the list and retrieve associated documents or services. In many cases, however, it will turn out that a very long list of addresses and links is returned, but only a small number thereof is actually related to the desired topic. Key words supplied to a search application will often result in lists with thousands of entries and many entries of the list will only intermediately be related to the object or not at all.
Retrieving information from a network can therefore be a tedious and time-consuming task, and the result might not be satisfying. This situation is further severed by the swift growth of such networks.
There might be essentially two reasons causing the difficulty for a user to retrieve information about a specific object in. Even if the user knows some key facts about the desired object, the search might still miss important information concerning the object and secondly, often key information about the desired object is lacking and it therefore is not possible for the user to specify proper search terms, even if he knows which object he wants to retrieve information for. The user will also face the problem that it is not possible to get a determined answer whether desired information is available on the network or not, i.e., the information may exist, even if the conducted search failed.
It is therefore desirable to design a system, which readily delivers focused information about a certain topic or object without the need of performing time consuming network searches with sophisticated arrangements of search terms, in order to narrow down the number of xe2x80x9chitsxe2x80x9d.
In the physical world, a large number of different objects, manmade or natural, exists and similarly, in the virtual world of a computer network information exists about virtually all physical objects. However, as outlined before, it is difficult to retrieve information related to a specific object. Thus there is a need for a system, which links physical objects with services in the information space.
A number of proprietary systems is known from daily life, which allow to connect a limited number of objects to information about the objects. For example, such systems may link car spare parts to information of a data base. A part number may be entered into the system and drawings, information about availability, price, etc., is returned. Similar systems are encountered supermarkets. The systems are able to display information related to an object under investigation or to account for sold items, prices, etc.
However, all of the above systems have several limitations regarding scalability with respect to the number of objects and associated information services, robustness and generality.
Further, xe2x80x9cbrokenxe2x80x9d links, i.e., links and addresses stored by a user at one point in time and which are not any longer valid, pose a problem in computer networks. The location of information or services, i.e., the address of the computer of the network storing the information or service, as well as filenames usually change over time due to a rearrangement of servers, network addresses and the like. In this case, a called address or link for retrieving a certain service from the network may no longer be valid and an error message is returned to the user. Obviously, it is thus desirable to avoid the broken links, in order to be able to retrieve information about an object without fail.
It is therefore object of the invention to provide a system and method capable of communicating information associated with an arbitrary number of objects.
This object of the invention is solved by a communication system, comprising: a plurality of objects (D) each identified by an object tag (T); a plurality of application servers each having an address (IS; IS1-ISp) and each including memory means for storing a plurality of application data packets, each related to one of the objects and identified by an application identifier (AI1-AIm); reading means (R) for reading one of the plurality of object tags (T); a system kernel (K), including: a plurality of directory servers (DS; DS1-DSn) each having an address and including memory means (TM; AM) for storing in a distributed data base object data associating each of the objects with at least one of the application data packets; means for receiving the read object tag (T) from the reading means (R) and means for identifying the directory server for storing object data related to the read object tag and retrieving the object data; and means for retrieving at least one of the application data packets based on the object data or transmitting at least part of the object data to a receiving unit (M, DPU).
The object of the invention is further solved by a communication system, comprising: a plurality of objects (D) each identified by an object tag (T); a plurality of application servers each having an address (IS; IS1-ISp) and each including memory means for storing a plurality of application data packets, each related to one of the objects and identified by an application identifier (AI1-AIm); reading means (R) for reading one of the plurality of object tags (T); a system kernel (K), including: a plurality of directory servers (DS; DS1-DSn) each having an address and including memory means (TM; AM) for storing in a distributed data base object data associating each of the objects with at least one of the application data packets; memory means for storing a list of all available directory servers in a hashtable (H); means for receiving the read object tag (T) from the reading means (R); means (DS; DS1-DSn; AS; AS1-ASr), using a hashfunction for identifying the directory server (DS; DS1-DSn) for storing the object data related to the read object tag, based on the hashtable and retrieving the object data; and means for retrieving at least one of the application data packets based on the object data or transmitting at least part of the object data to a receiving unit (M, DPU).
Still further, the object of the invention is solved by a method of communicating information, comprising: marking each of a plurality of objects with an object tag; storing a plurality of application data packets, each identified by an application identifier, in memory means of a plurality of application servers, each identified by an application server address; storing in each of a plurality of directory servers (DS; DS1-DSn) part of a distributed data base of object data associating the plurality of objects with the plurality of application data packets; reading one of the object tags using a reading means (R) and transmitting the read object tag to an access server (AS; AS1-ASr); identifying the directory server (DS; DS1-DSn) storing object data corresponding to the object tag; obtaining the address of at least one of the application servers storing at least one of the application data packets associated with the object based on the object data; and retrieving the at least one of the application data packets using the address or transmitting data corresponding to the address to a mobile telephone (M) or a data processing unit (DPU).
Still further, the object of the invention is solved by a method of communicating information, comprising: marking each of a plurality of objects with an object tag; storing a plurality of application data packets, each identified by an application identifier, in memory means of a plurality of application servers, each identified by an application server address; storing a list of a plurality of available directory servers in a hashtable; mapping all object tags employing a hashfunction and the hashtable onto the directory servers; storing in each of the plurality of directory servers (DS; DS1-DSn) part of a distributed data base of object data associating the plurality of object tags with the plurality of application data packets; reading one of the object tags using a reading means (R) and transmitting the read object tag to an access server (AS; AS1-ASr); identifying the directory server (DS; DS1-DSn) storing object data corresponding to the object tag using the hashfunction; obtaining the address of at least one of the application servers storing at least one of the application data packets associated with the object based on the object data; and retrieving the at least one of the application data packets using the address or transmitting data corresponding to the address to a mobile telephone (M) or a data processing unit (DPU).
The invention advantageously allows to link an arbitrary number of objects of the real world to information services stored on an arbitrary number of data processing units or application servers, which may be located at arbitrary places. The services may be text, images, application programs or any other kind of messages. The data processing units or application servers preferably store a plurality of application data packets comprising data related to the services. Each of the plurality of application data packets may be associated with one of the plurality of objects of the real world, i.e., it contains information related to the object. The application data packets may be of arbitrary size.
Advantageously, each of a plurality of directory servers stores part of an arbitrarily scaleable data base containing object data associating each of the objects with at least one of the application data packets. The plurality of directory servers serve as key resource in retrieving an application data packet related to an object. Means for receiving a read object tag from a reading means and for identifying the directory server for storing object data related to the read object tag and retrieving the object data are provided. During operation, a system kernel receives data of an object tag associated to one of the plurality of objects, and based on a search performed by at least one of the plurality of directory servers, obtains the address of a storage location or locations, i.e., the address of application servers storing application data packets related to the object. Subsequently the application data packets may be retrieved and can be supplied to a device. The device may be a mobile telephone or a data processing unit or the like. Alternatively, object data related to the read object tag can be transmitted to the device. The invention thus advantageously allows to connect different services from different providers.
In an advantageous embodiment of the invention each of the plurality of directory servers comprises tag memory means storing information about which of the plurality application data packets is associated with particular ones of the plurality of objects. Thus, a tag data block advantageously may comprise at least one object tag and at least one application identifier. Also, tag data blocks may comprise addresses of application servers storing application data packets corresponding to the application identifiers.
Each of the directory servers may advantageously also comprise address memory means for storing address data blocks including information about application server addresses storing the application data packets specified in the tag memory means. An address data block may advantageously be provided for each application data packet. Thus, an address data block may store an application identifier and the application server address of the server storing the corresponding application data packet. Address data blocks may also store object tags of objects associated to an application data packet. The address data blocks may advantageously be used for removing application identifiers from object data, if corresponding application data packets are removed.
Tag memory means and address memory means advantageously allow to solve the problem of broken links, since an object, via its tag, can indirectly be linked to particular storage locations, i.e., addresses of specific application servers. A look-up of a specific application data packet related to a particular object may therefore advantageously be performed by searching for a specific object tag in the tag memory means and subsequently, application server addresses for respective application identifiers may be retrieved from the address memory means.
In another embodiment of the invention the system advantageously comprises memory means for storing a list of available directory servers in a hashtable and a hashfunction is provided for identifying a particular one of the directory servers for storing information related to a specific object based on the hashtable. The hashfunction is thus used for mapping all object tags onto the plurality of directory servers. The hashfunction can be used in operations for storing and removing one of the object tags and associated object data, retrieving object data related to one of the object tag from one of the directory servers, and relocating object data from one of the directory servers to another.
Advantageously, all object tags and directory server addresses may be numbered in an ascending order, tag data blocks of object tags with sequential numbers are stored on directory servers with sequential numbers and the list of all available directory servers, i.e., their addresses, sorted by assigned numbers, are maintained as the hashtable. Thus, the directory server storing information related to a particular one of the objects can be identified by the hashfunction. The determined directory server is likely to store object data related to the object tag. If it does not store the object data, the output range of the hashfunction can be halved.
If an object is to be inserted into data base of object data, the appropriate directory server can advantageously be computed using the hashfunction. Further, if a new directory server becomes available and is inserted into the hashtable, storing locations of application data blocks may advantageously be recomputed using the hashfunction.
Preferably, the hashtable is stored by at least one supervisor server, however, any other component of the system kernel may store the hashtable or a copy of the hashtable. It is thus possible that copies of the hashtable are stored on the directory servers, etc. The copies of the hashtable may advantageously be updated only periodically, in order to reduce processing time. Providing copies of the hashtable at a plurality of devices of the system further reduces the response time of the system, since look up operations can be performed by many devices.
Further, a plurality of broker servers may be provided for storing information about components of the system kernel. The broker servers may also store copies of the hashtable.
Advantageously, retrieved application data packets may be communicated via fixed and wireless communication links to a mobile telephone or to a data processing device, used for playback or display of information. Data conversions, such as speech processing, can advantageously be performed by specifically provided resource means.
Further, in order to provide a robust system, components of the system kernel can be replicated by replication components.
Still further advantages of the invention are described in dependent claims.